
package modeloEntidades;
import modeloMapaJuego.*;
import modeloConstrucciones.Construccion;
import modeloUnidadesMilitares.Unidad;
import java.util.*;
import com.thoughtworks.xstream.XStream;
import java.io.*;

public class Jugador implements Serializable{
    
    private int j_nivel,j_exper,j_pobl,j_fua,j_moneda;
    private recursos j_recursos; 
    private int lim_fua;
    private int lim_pobl;
    private int lim_exper;
    private double factor_exper;
    private ArrayList<Construccion> construcciones;
    private ArrayList<Unidad> unidades;
    private ArrayList<Amigo> amigos;
    private int turnoJ = 0;
    private ArrayList<Unidad> unidadesBatalla;
    private String nombre;

    public Jugador(String nombre){
        this.j_recursos = new recursos();
        this.j_recursos.setJ_made(300);
        this.j_recursos.setJ_petro(300);
        this.j_recursos.setJ_minerales(300);
        this.j_nivel=15;
        this.j_exper=1;
        this.j_pobl=50;
        this.j_fua=30;
        this.j_moneda=2000;
        this.lim_pobl=300;
        this.lim_fua=30;
        this.lim_exper=10;
        this.factor_exper=1.2;
        this.construcciones = new ArrayList();
        this.unidades= new ArrayList();
        this.amigos=new ArrayList();
        this.cargarAmigosIniciales();
        this.nombre=nombre;
    }
    
    public void actualiza_lim_fua(){ lim_fua += 2; }
    public void actualiza_lim_pobl(){ lim_pobl += 50; }
    public void actualiza_lim_exper(){ lim_exper=(int)(Math.ceil(factor_exper*lim_exper)); }
    public int getJ_pobl() { return j_pobl; }
    public void setJ_pobl(int j_pobl) { this.j_pobl = j_pobl; }
    public int getJ_exper() { return j_exper; }
    public void setJ_exper(int j_exper) { this.j_exper = j_exper; }
    public int getJ_moneda() { return j_moneda; }
    public void setJ_moneda(int j_moneda) { this.j_moneda = j_moneda; }
    public int getJ_fua() { return j_fua; }
    public void setJ_fua(int j_fua) { this.j_fua = j_fua; }
    public int getJ_nivel() { return j_nivel; }
    public void setJ_nivel(int j_nivel) { this.j_nivel = j_nivel; }
    public int getLim_pobl() {return this.lim_pobl;}
    public int getLim_fua() {return this.lim_fua;}
    public int getLim_exper() { return this.lim_exper; }
    public recursos getJ_recursos() {return this.j_recursos; }
    public void setLimPobl(int lim) {this.lim_pobl = lim; }
    public ArrayList<Construccion> getConstrucciones() {
        return construcciones;
    }
    public ArrayList<Unidad> getUnidades() {
        return unidades;
    }
   public ArrayList<Unidad> getUnidadesBatalla() {
        return unidadesBatalla;
    }
   public void setUnidadesBatalla(ArrayList<Unidad> unidadesbatalla) {
        this.unidadesBatalla = unidadesbatalla;
    }
    public ArrayList<Amigo> getAmigos() {
    return amigos;
    }

    public int getTurnoJ() { return turnoJ; }
    public void setTurnoJ(int TurnoJ) { this.turnoJ = TurnoJ; }
    
    
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    private void cargarAmigosIniciales()
    {
        try
        {
            XStream xs = new XStream();
            FileReader fr1 = new FileReader("amigos.xml");
            this.amigos= (ArrayList<Amigo>)xs.fromXML(fr1);
            fr1.close();
        }
        catch (IOException e){
        }
    }


}
